<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">

    <title>AlloyTouch</title>

    <style type="text/css">
        * {
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }

        html {
            -ms-touch-action: none;
        }

        body, ul, li {
            padding: 0;
            margin: 0;
            border: 0;
        }

        body {
            font-size: 12px;
            font-family: ubuntu, helvetica, arial;
            overflow: hidden;
        }

        #header {
            position: absolute;
            z-index: 3;
            top: 0;
            left: 0;
            width: 100%;
            height: 45px;
            line-height: 45px;
            background: #00ABEB;
            padding: 0;
            color: #eee;
            font-size: 20px;
            text-align: center;
            font-weight: bold;
        }

        #footer {
            position: absolute;
            z-index: 2;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 48px;
            background: #e2e2e2;
            padding: 0;
        }

        #wrapper {
            position: absolute;
            z-index: 1;
            top: 45px;
            bottom: 48px;
            left: 0;
            width: 100%;
            background:rgb(233, 230, 230);
            overflow: hidden;
        }

        #scroller {
            position: absolute;
            z-index: 1;
            -webkit-tap-highlight-color: rgba(0,0,0,0);
            width: 100%;
            -webkit-transform: translateZ(0);
            -moz-transform: translateZ(0);
            -ms-transform: translateZ(0);
            -o-transform: translateZ(0);
            transform: translateZ(0);
            -webkit-touch-callout: none;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
            -webkit-text-size-adjust: none;
            -moz-text-size-adjust: none;
            -ms-text-size-adjust: none;
            -o-text-size-adjust: none;
            text-size-adjust: none;

        }

        #scroller ul {
            list-style: none;
            padding: 0;
            margin: 0;
            width: 100%;
            text-align: left;
        }

        #scroller li {
            padding: 0 10px;
            height: 40px;
            line-height: 40px;
            border-bottom: 1px solid #ccc;
            border-top: 1px solid #fff;
            background-color: #fafafa;
            font-size: 14px;
        }

        .pull_refresh{
            text-align: center;
            color: #00a9f2;
            position: absolute;
            z-index: 2;
            width: 100%;
            top: -8px;
        }
        .arrow{
            margin-top: 5px;
            margin-bottom: 5px;
        }

        .arrow_up img{
            transform: rotateZ(180deg);
            -webkit-transform: rotateZ(180deg);
        }

        .pull_refresh img{
            width: 20px;
            transition: transform .4s ease;
        }
        .pull_refresh.refreshing .pull{
            display: none;
        }
        .pull_refresh.refreshing .loading{
            display: block;
        }
        .wording{
            margin-bottom: 14px;
        }

        .pull_refresh .pull{
            display: block;
        }
        .pull_refresh .loading{
            display: none;
        }
    </style>
</head>
<body>
<div>


</div>
<div id="header">AlloyTouch</div>
<div class="pull_refresh" id="pull_refresh">
    <div class="pull">
        <div id="arrow" class="arrow">
            <img src="asset/arrow.png">
        </div>
        <div id="wording" class="wording">
            Pull to refresh
        </div>
    </div>
    <div class="loading">
        <svg width='40px' height='40px' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-default"><rect x="0" y="0" width="100" height="100" fill="none" class="bk"></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(0 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(30 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.08333333333333333s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(60 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.16666666666666666s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(90 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.25s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(120 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.3333333333333333s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(150 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.4166666666666667s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(180 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.5s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(210 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.5833333333333334s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(240 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.6666666666666666s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(270 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.75s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(300 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.8333333333333334s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='#00a9f2' transform='rotate(330 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.9166666666666666s' repeatCount='indefinite'/></rect></svg>
    </div>

</div>
<div id="wrapper">
    <div id="scroller">
        <ul id="list">
            <li>Hello, AlloyTouch!</li>
            <li>AlloyFinger - Super Tiny Size Gestures Library</li>
            <li>Transformjs - Made CSS3 Super Easy</li>
            <li>AlloyFlow - </li>
            <li>Nuclear - Some HTML + Scoped CSS + JS </li>
            <li>AlloyGameEngine</li>
            <li>Rosin</li>
            <li>LivePool</li>
            <li>AlloyStick</li>
            <li>CodeStar</li>
            <li>AlloyDesigner</li>
            <li>JXAnimate</li>
            <li>Spirit</li>
            <li>AlloyImage</li>
            <li>ModJS</li>
            <li>Pretty row 16</li>
            <li>stepify</li>
            <li>AlloyTimer</li>
            <li>Alloy Desktop</li>
            <li>JX UI</li>
            <li>CodeTank</li>
            <li>iSpriter</li>
            <li>Rythem</li>
            <li>Go!Png </li>
            <li>JX</li>
            <li>TEditor</li>
            <li> row 1</li>
            <li> row 2</li>
            <li> row 3</li>
            <li>row 5</li>
            <li> row 5</li>
            <li> row 7</li>
            <li> row 8</li>
            <li> row 9</li>
            <li> row 11</li>
            <li> row 11</li>
            <li> row 12</li>
            <li> row 13</li>
            <li> row 14</li>
            <li> row 15</li>
            <li> row 16</li>
            <li> row 17</li>
            <li> row 18</li>
            <li> row 19</li>
            <li> row 20</li>
            <li> row 21</li>
            <li> row 22</li>
            <li> row 23</li>
            <li> row 24</li>
            <li> row 25</li>
        </ul>
    </div>
</div>
<div id="footer"></div>
<a href="https://github.com/AlloyTeam/AlloyTouch" target="_blank" style="position: fixed; right: 0; top: 0; z-index: 3;width:140px;height:140px;">
    <img src="//alloyteam.github.io/github.png" alt="">
</a>
<script src="../../transformjs/transform.js"></script>
<script src="alloy_touch.refresh.js"></script>
<script>
    var target = document.querySelector("#scroller");
    var arrow = document.querySelector("#arrow");
    var pull_refresh= document.querySelector("#pull_refresh");
    var list= document.querySelector("#list");
    var wording= document.querySelector("#wording");

    //给element注入transform属性
    Transform(target,true);

    var index = 0;
    var at=new AlloyTouch({
        touch: "#wrapper",//反馈触摸的dom
        vertical: true,//不必需，默认是true代表监听竖直方向touch
        target: target, //运动的对象
        property: "translateY",  //被滚动的属性
        initialValue: 0,
        min: window.innerHeight - 45 - 48 - 2000, //不必需,滚动属性的最小值
        max: 0, //不必需,滚动属性的最大值
        refreshOption: {
            refreshPoint: 80,
            refreshingPoint: 60,
            refresh: function () {
                pull_refresh.classList.add("refreshing");
                var self = this;
                setTimeout(function () {
                    var i = 0,
                        len = 3;
                    for (; i < len; i++) {
                        var li = document.createElement("li");
                        li.innerHTML = "new row " + index++;
                        list.insertBefore(li, list.firstChild);
                    }

                    pull_refresh.classList.remove("refreshing");
                    self.to(self.initialValue);

                    self.min -= 40 * 3;

                    self.refreshEnd();
                }, 2000);
            },
            inRefreshPoint: function () {
                console.log(111)
                arrow.classList.add("arrow_up");
                wording.innerHTML = "Release to refresh";
            },
            outRefreshPoint: function () {
                arrow.classList.remove("arrow_up");
                wording.innerHTML = "Pull to refresh";
            },
            refreshTip: "#pull_refresh"
        }
    })

</script>
</body>
</html>
